﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace Clinica_Frba
{

    public partial class FormModificarAfiliado : FormAltaAfiliado
    {
        
        public FormModificarAfiliado()
        {
            InitializeComponent();
        }

        public void SetearInformacionBase(InfoDeAfiliado infoDeAfiliado)
        {
            cInfoActualDeAfiliado = infoDeAfiliado;
            ResetearAValoresActuales();

            tbNombre.Enabled = false;
            tbApellido.Enabled = false;
            tbNroDeDocumento.Enabled = false;
            cbTipoDeDocumento.Enabled = false;
            dtpFechaDeNacimiento.Enabled = false;
            if(cInfoActualDeAfiliado.strSexo.Length > 0)
                cbSexo.Enabled = false;


        }

        protected override void bLimpiar_Click(object sender, EventArgs e)
        {
            ResetearAValoresActuales();
        } 

        private void ResetearAValoresActuales()
        {
            tbNombre.Text = cInfoActualDeAfiliado.strNombre;
            tbApellido.Text = cInfoActualDeAfiliado.strApellido;
            tbEmail.Text = cInfoActualDeAfiliado.strEmail;
            tbNroDeDocumento.Text = cInfoActualDeAfiliado.strNumeroDeDocumento;
            tbTelefono.Text = cInfoActualDeAfiliado.strTelefono;
            tbDireccion.Text = cInfoActualDeAfiliado.strDireccion;
            cbEstadoCivil.Text = cInfoActualDeAfiliado.strEstadoCivil;
            cbPlanMedico.Text = cInfoActualDeAfiliado.strPlanMedico;
            cbSexo.Text = cInfoActualDeAfiliado.strSexo;
            cbTipoDeDocumento.Text = cInfoActualDeAfiliado.strTipoDeDocumento;
            dtpFechaDeNacimiento.Text = cInfoActualDeAfiliado.strFechaDeNacimiento;

        }
        override protected void bSubmit_Click(object sender, EventArgs e)
        {
            if (!Dialogos.MostrarYesNoDialog("Esta seguro de los cambios ?"))
                return;

            SqlConnection myConnection = new SqlConnection(publico.ConnectionString);
            myConnection.Open();
            SqlCommand consulta;


            string strQuery = "UPDATE AFILIADO " +
            "SET DIRECCION = '" + tbDireccion.Text + "' " +
            ", TELEFONO = '" + tbTelefono.Text + "' " +
            ", MAIL = '" + tbEmail.Text + "' " +
            ", SEXO = '" + cbSexo.Text + "' " +
            ", ESTADO_CIVIL = '" + cbEstadoCivil.Text + "' ";

            if (cbPlanMedico.Text != cInfoActualDeAfiliado.strPlanMedico)
            {
                FormMotivo formMotivo = new FormMotivo("Por favor, especifique el motivo por el cual hay un cambio de plan.");
                formMotivo.ShowDialog();


                string strQueryParaPlan = "SELECT ID_PLAN FROM PLAN_MEDICO WHERE DESCRIPCION = '" + cbPlanMedico.Text + "'";
                consulta = new SqlCommand(strQueryParaPlan, myConnection);
                SqlDataReader executeCMD = consulta.ExecuteReader();
                executeCMD.Read();

                strQuery += ", ID_PLAN = '" + executeCMD["ID_PLAN"].ToString() + "'";
                strQuery += "WHERE ID_AFIL = '" + cInfoActualDeAfiliado.strAfiliadoID + "';";
                strQuery += "INSERT INTO REGISTRO_CAMBIO_PLAN(ID_AFIL,Fecha,Motivo) VALUES ('" + cInfoActualDeAfiliado.strAfiliadoID + "', CONVERT(DATETIME, '" + DateTime.Today.ToString("yyyy-dd-MM") + "',103),'" + formMotivo.getMotivo() + "');";

                strQuery = "BEGIN TRANSACTION;" + strQuery + "COMMIT TRANSACTION;";
                executeCMD.Close();
            }
            else
            {
                strQuery += "WHERE ID_AFIL = '" + cInfoActualDeAfiliado.strAfiliadoID + "';";
            }
            consulta = new SqlCommand(strQuery, myConnection);
            int updateExecuteCMD = consulta.ExecuteNonQuery();

            if (updateExecuteCMD > 0)
                bCompletoYSatisfactorio = true;
            else
                Dialogos.MostrarMessageDialog("HA OCURRIDO UN ERROR !!");

            Close();
        }

    }
}
